'''
Author: your name
Date: 2021-02-01 20:23:28
LastEditTime: 2021-02-02 09:25:39
LastEditors: Please set LastEditors
Description: In User Settings Edit
FilePath: /职级爬虫脚本/job_city.py
'''
import requests
import json
from pprint import pprint


def get_data(url):
    r = requests.get(url)
    json_tmp = r.json()
    json_str = json.dumps(json_tmp)
    user_dic = json.loads(json_str)
    return user_dic


def get_url(company_get, city_get, occupation_get, type_get):
    # pprint({
    #     "公司": company_get,
    #     "城市": city_get,
    #     "岗位": occupation_get,
    # })
    return "https://m.nowcoder.com/nccommon/offer/show-v2/company-index?company="+str(company_get)+"&city="+str(city_get)+"&occupation="+str(occupation_get)+"&type="+str(type_get)


company_list = [
    "华为",
    "美团",
    "腾讯",
    "拼多多",
    "滴滴",
    "网易",
    "去哪儿",
    "微软",
    "大疆",
    "美的",
    "Shopee",
    "苏宁",
    "京东",
    "猿辅导",
    "快手",
    "知乎",
    "阿里巴巴",
    "大华",
    "爱奇艺",
    "海康威视",
    "前程无忧",
    "外企德科人力资源服务",
    "杭州亦枫网络科技有限公司",
    "欧应科技",
    "途虎",
    "软通动力",
    "博奥赛斯（天津）生物科技有限公司",
    "紫光海阔集团有限公司",
    "掌门1对1",
    "企查查",
    "宇视科技",
    "上海得帆信息技术有限公司",
    "上海祐云信息技术有限公司",
    "成都振讯科技发展有限公司",
    "超级猩猩",
    "TCL",
    "长沙迪迈数码科技有限公司",
    "广州市盈络信息技术有限责任公司",
    "买无忧超市",
    "中娱时代",
    "几度互联",
    "医渡云",
    "经纬恒润",
    "成谷科技",
    "哔哩哔哩",
    "平安科技",
    "货拉拉",
    "招联金融",
    "联想研究院",
    "酷家乐",
    "编程猫",
    "有赞",
    "毒舌电影",
    "汇富康达",
    "彩讯科技",
    "中国农业银行",
    "新华三",
    "有赞",
    "科锐国际",
    "猿辅导",
    "同盾科技",
    "SHEIN",
    "北京华正世纪软件技术有限公司",
    "百度",
    "华坤道威",
    "个推",
    "赛意信息",
    "百度",
    "同盾科技",
    "科锐国际",
    "北京爱思益咨询有限公司",
    "成都孚介科技有限公司",
    "杉岩数据",
    "OPPO",
    "联想",
    "汉克时代",
    "极米科技",
    "上海铧志信息技术有限公司",
    "无锡市比特慧星科技有限公司",
    "骏梦游戏",
    "中软国际",
    "陆金所",
    "汤森路透Thomson Reuters",
    "华住酒店",
    "字节跳动",
    "途虎",
    "乐天创研",
    "辰森世纪",
    "平安科技",
    "中电和瑞科技有限公司",
    "京北方",
    "浪潮",
    "Thoughtworks",
    "嘉环科技",
    "极米科技",
    "简恒",
    "品茗股份",
    "上海新致",
    "蚂蚁集团",
    "CVTE",
    "顺丰科技",
    "科大讯飞",
    "乐檬软件",
    "途家网",
    "直真科技",
    "完美世界",
    "洋钱罐（瓴岳科技）",
    "睿辰欣创",
    "博网科技",
    "中电系统",
    "容联云通讯",
    "凯诘电商",
    "中软国际",
    "海康威视",
    "睿至大数据",
    "朗新科技",
    "住友橡胶（中国）有限公司",
    "青云科技",
    "字节跳动",
    "东华软件",
    "海万科技",
    "海看科技",
    "华资软件",
    "彩智慧",
    "中通服软件",
    "keep",
    "深圳雁联",
    "中邮信科",
    "同花顺",
    "复基集团",
    "拉勾网",
    "二更",
    "忘平科技",
    "欧派橱柜",
    "东华软件",
    "跟谁学",
    "汉汇泽",
    "高椅山旅游开发",
    "桥吧教育",
    "地平线机器人",
    "今天国际",
    "跟谁学",
    "蒲惠智造",
    "易联支付",
    "广州小迈",
    "微拍堂",
    "mingbo公司",
    "中国外运",
    "喜马拉雅fm",
    "瑞友科技",
    "浙江飞阅",
    "创酷互动",
    "鲸与海文化传媒",
    "小象直播",
    "锘崴科技",
    "啄云智能",
    "杭州金电联行",
    "乐摇摇",
    "北纬三十度",
    "酷麦",
    "探迹科技",
    "青鹿教育",
    "酷家乐",
    "浙江农信",
    "机械之家",
    "长空机械",
    "阿里巴巴",
    "机械之家",
    "厦工机械",
    "恒达机械",
    "图灵机器人",
    "佳都新太科技股份有限公司",
    "火烈鸟网络（广州）股份有限公司",
    "西安新达机械",
    "洋葱集团",
    "国机集团",
    "华飞数据",
    "长空机械",
    "山推股份",
    "广州云徒信息科技有限公司",
    "西安新达机械",
    "国机集团",
    "广州源创",
    "长空机械",
    "飞搏软件",
    "国机集团",
    "酷狗音乐",
    "飞搏软件",
    "西安新达机械",
    "飞搏软件",
    "久游网",
    "酷家乐",
    "中设智控",
    "阿里巴巴",
    "途牛",
    "尚德教育",
    "众安保险",
]
city_list = ["北京", "上海", "广州", "深圳", "杭州", "南京", "西安",
             "武汉", "哈尔滨", "成都", "长沙", "厦门", "合肥", "苏州", "珠海", "其他"]
occupation_list = [
    'Java工程师',
    'C++工程师',
    'PHP工程师',
    'golang工程师',
    '前端工程师',
    '安卓工程师',
    'IOS工程师',
    '算法工程师',
    '大数据开发工程师',
    '信息技术岗',
    '运维工程师',
    '安全工程师',
    '数据分析师',
    '数据库工程师',
    '游戏研发工程师',
    '区块链',
    '测试开发工程师',
    '测试工程师',
    '硬件工程师',
    '电气工程师',
    '嵌入式工程师',
    'fpga工程师',
    '采购物流类',
    '工程研发类',
    '生产制造',
    '市场类',
    '信息软件类',
    '造型设计类',
    '制造工艺类',
    '生产计划类',
    '产品',
    '运营',
    '游戏策划',
    '设计',
    '审计',
    '税务服务',
    '风险管理',
    '证券分析师',
    '财务',
    '理财顾问',
    '柜面服务',
    '营销',
    '项目助理',
    '客户经理',
    '业务管理',
    '市场',
    '品牌运营工程师',
    '销售计划与分析',
    '市场分析',
    '品牌专员',
    '数字营销专员',
    '售后专员',
    '产品规划专员',
    '媒介专员',
    '公关',
    '管理咨询',
    '管理培训生',
    'IT管理培训生',
    '人力资源',
    '行政管理',
    '销售',
    '法务',
]

count = 0

for company_item in company_list:
    for city_item in city_list:
        for occupation_item in occupation_list:
            get = get_data(
                get_url(company_item, city_item, occupation_item, 2))
            # pprint(get)
            newestOffers = get["data"]["newestOffers"]
            for i in newestOffers:
                var1 = str(i["occupation"])
                var2 = str(i["city"])
                var3 = str(i["year"])
                var4 = str(i["schoolType"])
                var5 = str(i["statusOperatorUid"])
                var6 = str(i["likeCount"])
                var7 = str(i["salary"])
                var8 = str(i["type"])
                var9 = str(i["salaryMonthCount"])
                var10 = str(i["uid"])
                var11 = str(i["educationLevel"])
                var12 = str(i["occupationId"])
                var13 = str(i["salaryPerMonth"])
                var14 = str(i["company"])
                var15 = str(i["id"])
                # var16 = str(i["department"])
                var17 = str(i["disLikeCount"])
                var18 = str(i["occupationComment"])
                var19 = str(i["level"])
                var20 = str(i["isLiked"])
                var21 = str(i["updateTime"])
                var22 = str(i["commentUserCount"])
                var23 = str(i["isDisLiked"])
                var24 = str(i["companyId"])
                var25 = str(i["createTime"])
                var26 = str(i["comment"])
                var27 = str(i["mergeLikeCount"])
                var28 = str(i["status"])
                split_char = "@"
                count = count+1
                pprint("已爬取"+str(count)+"项")
                f = open('data_sort.txt', 'a+')
                f.writelines(var1+split_char +
                             var2+split_char +
                             var3+split_char +
                             var4+split_char +
                             var5+split_char +
                             var6+split_char +
                             var7+split_char +
                             var8+split_char +
                             var9+split_char +
                             var10+split_char +
                             var11+split_char +
                             var12+split_char +
                             var13+split_char +
                             var14+split_char +
                             var15+split_char +
                             #  var16+split_char +
                             var17+split_char +
                             var18+split_char +
                             var19+split_char +
                             var20+split_char +
                             var21+split_char +
                             var22+split_char +
                             var23+split_char +
                             var24+split_char +
                             var25+split_char +
                             var26+split_char +
                             var27+split_char +
                             var28+split_char+"\n")
                f.close()
